// 获得我们的fs模块
var fs = require("fs");

// 等待我们创建好了这个文件夹以后，再来执行下一条指令
// fs.mkdirSync("./output");
// 当我们执行这个console.log的时候，文件夹已经创建好了，这个是同步
// console.log("hello");
/*
if (fs.existsSync("./output")) {
    console.log("output exist");

    fs.rename("./output", "./rename_output", function(err) {
        if (err) {
            console.log(err);
            return;
        }

        console.log("rename sucess");
    });
}
else {
    // 异步
    fs.mkdir("./output", function(err) {
        if (err) {
            console.log(err);
            return;
        }
        
        // 回掉函数的位置，能保证你已经穿件好这个好这个我文件夹。
        console.log("success");
        // end     
    });    


}


// 不用等待文件夹创建好，就可以执行下一条指令
// 在执行下一条的指令的时候，可能这个文件夹还没有创建出来。
// 如果接下来这条指令，你要使用这个文件夹的话，那么你就要把这条指令移动到
// 创建成功的回掉函数里面。
console.log("hello");
*/
//

// 获取文件信息
/*fs.stat("./hello.txt", function(err, stat) {
    if (err) {
        console.log(err);
        return;
    }

    console.log(stat.size);
    console.log(stat.ctime);
});*/
// end

// 同步
var stat = fs.statSync("./hello.txt");
console.log(stat.size);
// end


// 异步读一个文件
/*fs.readFile("./hello.txt", function(err, file_data) {
    if (err) {
        console.log(err);
        return;
    }


    console.log(file_data.toString());
});*/
// end

// 同步读一个文件
var file_data = fs.readFileSync("./hello.txt");
console.log(file_data);
// end 

// 打开一个文件
fs.open("./hello.txt", "r", function(err, file_handle) {
        if (err) {
            console.log(err);
            return;
        }
    
        // 拿到了访问这个文件的钥匙;文档 里面的fd,文件句柄
        console.log("open file success");
        fs.fstat(file_handle, function(err, stat) {
            var buf = Buffer.allocUnsafe(stat.size);
    
            // 异步读写，把我呢见读入到buffer
            fs.read(file_handle, buf, 0, stat.size, null, function(err) {
                fs.close(file_handle);    
                console.log(buf.toString());
    
    
            });
        
        });
})
// end 

// 异步写文件
/*fs.writeFile("./writefile.txt", "Hello this write File called!", function(err) {
    if (err) {
        console.log("err");
        return;
    }
    console.log("success");
});*/
// end
/*

fs.open("./writefile.txt", "a", function(err, fd) {
    fs.write(fd, "Hello this write File called!", function(err) {
        fs.close(fd);
    });
    // 异步写，可能这里还没有写完,你就关闭了。
    // fs.close(fd);
});
*/


var fd = fs.openSync("./writefile.txt", "a");
fs.writeSync(fd, "Hello this write File called!");
fs.closeSync(fd);


